/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 项目名：	rumba-web
 * 文件名：	ExtFormatSettings.java
 * 模块说明：	
 * 修改历史：
 * Aug 5, 2008 - lxm - 创建。
 */
package com.hd123.rumba.gwt.base.client.i18n;

import java.util.HashMap;
import java.util.Map;

/**
 * 格式化常量定义，遵循Ext.js标准。
 * <p>
 * 
 * 分别对于日期和数值类型分别遵循以下两套来自Ext的标准：
 * <ol>
 * <li>对于日期类型，参见{@link com.gwtext.client.util.DateUtil}；
 * <li>对于数值类型，Ext没有专门定义而继续沿用GWT的标准，这里不提供。
 * </ol>
 * 
 * @author lxm
 * 
 */
public class ExtFormat {

  /** 日期格式：年月日 */
  public static final String yMd = "Y-n-j";
  /** 时间格式：时分 */
  public static final String Hm = "H:i";
  /** 时间格式：时分秒 */
  public static final String Hms = Hm + ":s";
  /** 时间格式：时分秒+毫秒 */
  public static final String HmsS = Hms + ".u";
  /** 日期格式：年月日+时分 */
  public static final String yMdHm = yMd + " " + Hm;
  /** 日期格式：年月日+时分秒 */
  public static final String yMdHms = yMd + " " + Hms;
  /** 日期格式：年月日+时分秒+毫秒 */
  public static final String yMdHmsS = yMd + " " + HmsS;

  /**
   * 格式化模板翻译，将符合GWT语法标准的模板转换为符合Ext语法标准对应的模板。
   * 
   * @param gwtFormat
   *          指定符合GWT语法标准的格式化模板。指定的模板必须是在{@link GWTFormat}
   *          中所定义的关于日期的格式化模板， 否则将会导致返回null。
   * @return
   */
  public static String translateFromGWT(String gwtFormat) {
    return (String) transMap.get(gwtFormat);
  }

  private static Map<String, String> transMap = new HashMap();

  static {
    transMap.put(GWTFormat.fmt_yMd.getPattern(), yMd);
    transMap.put(GWTFormat.fmt_Hm.getPattern(), Hm);
    transMap.put(GWTFormat.fmt_Hms.getPattern(), Hms);
    transMap.put(GWTFormat.fmt_HmsS.getPattern(), HmsS);
    transMap.put(GWTFormat.fmt_yMdHm.getPattern(), yMdHm);
    transMap.put(GWTFormat.fmt_yMdHms.getPattern(), yMdHms);
    transMap.put(GWTFormat.fmt_yMdHmsS.getPattern(), yMdHmsS);
  }

}
